<?php
/**
 * kakaPhp
 * An open source application development framework
 *
 * @package		kakaPhp
 * @author		huijun lee
 * @copyright	Copyright (c) 2010-2018, www.kakaphp.com.
 * @Email		kakaphp@163.com
 * @Version		1.1.0
 */

class Request {

    ///获取一个get的 int类型的 
    function get_int($p) { 
        return intval($this->get_str($p)); 
    }
    
    ///获取一个post的 int类型的 
    function post_int($p){ 
        return intval($this->post_str($p));
    }

    ///获取一个get的 string类型的 
    function get_str($in){
        if( count($_GET["_URL_"])>2 ){
            $self=trim($_SERVER['PATH_INFO'],"/");
            $rt=explode("/",$self);
            for($i=2;$i<count($rt);$i+=2){
                if($rt[$i]==$in){ 
                    $p=isset($rt[$i+1])?$rt[$i+1]:""; break;
                }
            }
            if(!isset($p) || $p=="") {
				if(!isset($_GET[$in])) return "";
				$p=$_GET[$in];
			}
        }else{
            if(!isset($_GET[$in])) return "";
            $p=$_GET[$in];
        }

        $p=trim($p);
        if(get_magic_quotes_gpc()){ $p=stripslashes($p); }
        $p=str_replace(array(' ','\t'),"",$p);
        $p=htmlspecialchars($p);
        return strval($p);
    }

    ///获取一个post的 string类型的 
    function post_str($p, $htmescape=true){
        if(!isset($_POST[$p])) return "";
        $p=$_POST[$p];
        $p=trim($p);
        if(get_magic_quotes_gpc()){ $p=stripslashes($p); }
        if($htmescape) $p=htmlspecialchars($p);
        return strval($p);
    }
    
    //获取request的 int类型
    function request_int($p){
        if($_SERVER["REQUEST_METHOD"]=='GET') $rt=$this->get_int($p);
        else  $rt=$this->post_int($p);
        return $rt;
    }

    //获取request的 str类型
    function request_str($p, $htmescape=true){
        if($_SERVER["REQUEST_METHOD"]=='GET') $rt=$this->get_str($p);
        else  $rt=$this->post_str($p, $htmescape);
        return $rt;
    }

    /**
     * Usage  : $rt=request_array('a','b','c') 
     * Return : array('a'=>.., 'b'=>.., 'c'=>..)
     * Must call intval() manually on operating database interger field. 
     * Must call this function on operating PageNavigation.
     */
    function request_array(){
        $rt=array();
        $numargs=func_num_args();
        $arg_list=func_get_args();

        for($i=0;$i<$numargs;$i++){
            $key=$arg_list[$i];
            if($_SERVER["REQUEST_METHOD"]=='GET') $rt[$key]=$this->get_str($key);
            else  $rt[$key]=$this->post_str($key);
        }
        return $rt;
    }
}